from langchain_text_splitters import CharacterTextSplitter

# 使用换行符分割
# regex_splitter = CharacterTextSplitter(
#     separator="\n",
#     chunk_size=30,
#     chunk_overlap=10,
#     length_function=len,
#     is_separator_regex=False,
# )
# text_with_sentences = """这是第一行文本。
# 这是第二行，稍长一些的文本内容。
# 第三行包含了更多的文字，用于演示分割效果。
# 第四行是最后一行内容。"""

# 使用正则分割
regex_splitter = CharacterTextSplitter(
    # separator=r"(?<=。 )",
    separator="",
    chunk_size=30,
    chunk_overlap=10,
    length_function=len,
    is_separator_regex=True,
    keep_separator=True,
)
text_with_sentences = """这是第一个句子。 这是第二个句子，稍长一些。 第三个句子包含了更多的词语。 最后一个是短句。"""

docs = regex_splitter.create_documents([text_with_sentences])

for i, doc in enumerate(docs):
    print(f"Chunk {i+1}:")
    print(doc.page_content)
    print("-" * 50)
